package 变量交换算法.配对交换;

import jdk.swing.interop.SwingInterOpUtils;

import java.net.BindException;
import java.util.Arrays;
import java.util.Stack;

/**
 * TODO
 *
 * @className: pdjh
 * @description: TODO
 * @author: 等什么柠檬君
 * @date: 2022-05-10 14:23
 **/
public class pdjh {
    public static void main(String[] args) {
        System.out.println(exchangeBits(2));
    }
    public static int exchangeBits(int num) {
        //奇数
        int odd = num & 0x55555555;
        //偶数
        int even = num & 0xaaaaaaaa;
        odd = odd << 1;
        even = even >>> 1;
        return odd | even;
    }

//    public static int exchangeBits(int num) {
//
//
//        int before = num % 2 ;
//        int result = (int) Math.pow(2, before);
//        System.out.println("取余 "+before);
//        for (int i = 0; ; i++) {
//            System.out.println("当前 i " + i);
//            num /= 2;
//            before = num % 2;
//            System.out.println("取余 "+before);
//            if ((i & 1) == 1){
//                System.out.println("奇数");
//                if (before != 0){
//                    result -= Math.pow(2,i-1);
//                    result += Math.pow(2,i);
//                }else {
//                    result -= Math.pow(2,i);
//                    result += Math.pow(2,i-1);
//                }
//
//            }else {
//                System.out.println("偶数");
//                System.out.println("before 为"+before );
//                result += Math.pow(2,i);
////               if (before != 0){
////                   result += Math.pow(2,i);
////               }
//            }
//            if (num==1){
//
//                break;
//            }
//        }
//
//        return result;
//    }
}
